#include <iostream>
#include <vector>
#include <list>
#include <iterator>
#include <algorithm>
#include <set>
#include <functional>

using namespace std;


vector<function<void(const string&)>> vec;

void test0(){
    int num = 100;
    string name("wang dao");
    vec.push_back([&name](const string& value)->void{
//        WARNING: 捕获引用不可超出作用域
        cout << name << endl;
        cout << value << endl;
    });
}

void test1(){
    for(auto func: vec){
        func("wuhan");
    }
}

int main() {
    test0();
    test1();
    return 0;
}
